package com.xuzm.netty.operator;

import com.xuzm.netty.dto.RunDataDto;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
@Slf4j
public class ServerHandlerAddOperator extends ServerHandlerOperator {

    @Override
    public void exec(ChannelHandlerContext ctx, Object obj) {
        // 这里的obj为空
        // 客户端接入时间
        Date now = new Date();
        // 获取客户端的ip
        String addr = getClientAddr(ctx);
        log.info("-----客服端建立连接，地址： {}------" + addr);
        RunDataDto runDataDto = getDtoMap().get(addr);
        if(runDataDto != null){
            // 这里是处理重新连接
            // TODO: 2024/7/11 记录上次运行时长、故障时长
            runDataDto.setCurrentStatus(RunDataDto.Status.ON_LINE.getCode());
            runDataDto.setConnectTime(now);
            return;
        }
        runDataDto = new RunDataDto();
        runDataDto.setAddr(addr);
        runDataDto.setCurrentStatus(RunDataDto.Status.ON_LINE.getCode());
        runDataDto.setConnectTime(now);
        getDtoMap().put(addr, runDataDto);
        DOWN_ADDR.remove(addr);
    }
}
